home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / TextEncodingConverter.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  7.2 KB  |  133 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        TextEncodingConverter.p
  3.  
  4.      Contains:    Text Encoding Conversion Interfaces.
  5.  
  6.      Version:    Technology:    System 7.7
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1994-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT TextEncodingConverter;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __TEXTENCODINGCONVERTER__}
  28. {$SETC __TEXTENCODINGCONVERTER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC TextEncodingConverterIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MIXEDMODE__}
  38. {$I MixedMode.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __TEXTCOMMON__}
  41. {$I TextCommon.p}
  42. {$ENDC}
  43.  
  44.  
  45. {$PUSH}
  46. {$ALIGN MAC68K}
  47. {$LibExport+}
  48.  
  49.  
  50. TYPE
  51.     TECPluginSignature                    = OSType;
  52.     TECPluginVersion                    = UInt32;
  53. { plugin signatures }
  54.  
  55. CONST
  56.     kTECSignature                = 'encv';
  57.     kTECUnicodePluginSignature    = 'puni';
  58.     kTECJapanesePluginSignature    = 'pjpn';
  59.     kTECChinesePluginSignature    = 'pzho';
  60.     kTECKoreanPluginSignature    = 'pkor';
  61.  
  62.  
  63. { converter object reference }
  64.  
  65. TYPE
  66.     TECObjectRef = ^LONGINT;
  67.     TECSnifferObjectRef = ^LONGINT;
  68.     TECPluginSig                        = OSType;
  69.     TECConversionInfoPtr = ^TECConversionInfo;
  70.     TECConversionInfo = RECORD
  71.         sourceEncoding:            TextEncoding;
  72.         destinationEncoding:    TextEncoding;
  73.         reserved1:                UInt16;
  74.         reserved2:                UInt16;
  75.     END;
  76.  
  77. { return number of encodings types supported by user's configuraton of the encoding converter }
  78. FUNCTION TECCountAvailableTextEncodings(VAR numberEncodings: ItemCount): OSStatus;
  79. { fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. }
  80. FUNCTION TECGetAvailableTextEncodings(VAR availableEncodings: TextEncoding; maxAvailableEncodings: ItemCount; VAR actualAvailableEncodings: ItemCount): OSStatus;
  81. { return number of from-to encoding conversion pairs supported  }
  82. FUNCTION TECCountDirectTextEncodingConversions(VAR numberOfEncodings: ItemCount): OSStatus;
  83. { fill in an array of type TextEncodingPair passed in by the user with types of encoding pairs the current configuration of the encoder can handle. }
  84. FUNCTION TECGetDirectTextEncodingConversions(VAR availableConversions: TECConversionInfo; maxAvailableConversions: ItemCount; VAR actualAvailableConversions: ItemCount): OSStatus;
  85. { return number of encodings a given encoding can be converter into }
  86. FUNCTION TECCountDestinationTextEncodings(inputEncoding: TextEncoding; VAR numberOfEncodings: ItemCount): OSStatus;
  87. { fill in an array of type TextEncodingPair passed in by the user with types of encodings pairs the current configuration of the encoder can handle. }
  88. FUNCTION TECGetDestinationTextEncodings(inputEncoding: TextEncoding; VAR destinationEncodings: TextEncoding; maxDestinationEncodings: ItemCount; VAR actualDestinationEncodings: ItemCount): OSStatus;
  89. { get info about a text encoding }
  90. FUNCTION TECGetTextEncodingInternetName(textEncoding: TextEncoding; VAR encodingName: Str255): OSStatus;
  91. FUNCTION TECGetTextEncodingFromInternetName(VAR textEncoding: TextEncoding; encodingName: ConstStr255Param): OSStatus;
  92. { create/dispose converters }
  93. FUNCTION TECCreateConverter(VAR newEncodingConverter: TECObjectRef; inputEncoding: TextEncoding; outputEncoding: TextEncoding): OSStatus;
  94. FUNCTION TECCreateConverterFromPath(VAR newEncodingConverter: TECObjectRef; {CONST}VAR inPath: TextEncoding; inEncodings: ItemCount): OSStatus;
  95. FUNCTION TECDisposeConverter(newEncodingConverter: TECObjectRef): OSStatus;
  96. { convert text encodings }
  97. FUNCTION TECClearConverterContextInfo(encodingConverter: TECObjectRef): OSStatus;
  98. FUNCTION TECConvertText(encodingConverter: TECObjectRef; inputBuffer: ConstTextPtr; inputBufferLength: ByteCount; VAR actualInputLength: ByteCount; outputBuffer: TextPtr; outputBufferLength: ByteCount; VAR actualOutputLength: ByteCount): OSStatus;
  99. FUNCTION TECFlushText(encodingConverter: TECObjectRef; outputBuffer: TextPtr; outputBufferLength: ByteCount; VAR actualOutputLength: ByteCount): OSStatus;
  100. { one-to-many routines }
  101. FUNCTION TECCountSubTextEncodings(inputEncoding: TextEncoding; VAR numberOfEncodings: ItemCount): OSStatus;
  102. FUNCTION TECGetSubTextEncodings(inputEncoding: TextEncoding; VAR subEncodings: TextEncoding; maxSubEncodings: ItemCount; VAR actualSubEncodings: ItemCount): OSStatus;
  103. FUNCTION TECGetEncodingList(encodingConverter: TECObjectRef; VAR numEncodings: ItemCount; VAR encodingList: Handle): OSStatus;
  104. FUNCTION TECCreateOneToManyConverter(VAR newEncodingConverter: TECObjectRef; inputEncoding: TextEncoding; numOutputEncodings: ItemCount; {CONST}VAR outputEncodings: TextEncoding): OSStatus;
  105.  
  106. FUNCTION TECCreateOneToManyConverterFromPath(VAR newEncodingConverter: TECObjectRef; {CONST}VAR inPath: TextEncoding; inEncodings: ItemCount; numOutputEncodings: ItemCount; {CONST}VAR outputEncodings: TextEncoding): OSStatus;
  107. FUNCTION TECConvertTextToMultipleEncodings(encodingConverter: TECObjectRef; inputBuffer: ConstTextPtr; inputBufferLength: ByteCount; VAR actualInputLength: ByteCount; outputBuffer: TextPtr; outputBufferLength: ByteCount; VAR actualOutputLength: ByteCount; VAR outEncodingsBuffer: TextEncodingRun; maxOutEncodingRuns: ItemCount; VAR actualOutEncodingRuns: ItemCount): OSStatus;
  108. FUNCTION TECFlushMultipleEncodings(encodingConverter: TECObjectRef; outputBuffer: TextPtr; outputBufferLength: ByteCount; VAR actualOutputLength: ByteCount; VAR outEncodingsBuffer: TextEncodingRun; maxOutEncodingRuns: ItemCount; VAR actualOutEncodingRuns: ItemCount): OSStatus;
  109. { international internet info }
  110. FUNCTION TECCountWebTextEncodings(locale: RegionCode; VAR numberEncodings: ItemCount): OSStatus;
  111. FUNCTION TECGetWebTextEncodings(locale: RegionCode; VAR availableEncodings: TextEncoding; maxAvailableEncodings: ItemCount; VAR actualAvailableEncodings: ItemCount): OSStatus;
  112. FUNCTION TECCountMailTextEncodings(locale: RegionCode; VAR numberEncodings: ItemCount): OSStatus;
  113. FUNCTION TECGetMailTextEncodings(locale: RegionCode; VAR availableEncodings: TextEncoding; maxAvailableEncodings: ItemCount; VAR actualAvailableEncodings: ItemCount): OSStatus;
  114. { examine text encodings }
  115. FUNCTION TECCountAvailableSniffers(VAR numberOfEncodings: ItemCount): OSStatus;
  116. FUNCTION TECGetAvailableSniffers(VAR availableSniffers: TextEncoding; maxAvailableSniffers: ItemCount; VAR actualAvailableSniffers: ItemCount): OSStatus;
  117. FUNCTION TECCreateSniffer(VAR encodingSniffer: TECSnifferObjectRef; VAR testEncodings: TextEncoding; numTextEncodings: ItemCount): OSStatus;
  118. FUNCTION TECSniffTextEncoding(encodingSniffer: TECSnifferObjectRef; inputBuffer: TextPtr; inputBufferLength: ByteCount; VAR testEncodings: TextEncoding; numTextEncodings: ItemCount; VAR numErrsArray: ItemCount; maxErrs: ItemCount; VAR numFeaturesArray: ItemCount; maxFeatures: ItemCount): OSStatus;
  119. FUNCTION TECDisposeSniffer(encodingSniffer: TECSnifferObjectRef): OSStatus;
  120. FUNCTION TECClearSnifferContextInfo(encodingSniffer: TECSnifferObjectRef): OSStatus;
  121.  
  122.  
  123. {$ALIGN RESET}
  124. {$POP}
  125.  
  126. {$SETC UsingIncludes := TextEncodingConverterIncludes}
  127.  
  128. {$ENDC} {__TEXTENCODINGCONVERTER__}
  129.  
  130. {$IFC NOT UsingIncludes}
  131.  END.
  132. {$ENDC}
  133.